package com.chenzouquan.util.format;

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;

public class CsvFormatter {
    public static void formatCsvFile(String csvFilePath) {
        try {
            // 读取CSV文件内容
            List<String> lines = Files.readAllLines(Paths.get(csvFilePath));

            // 检查是否存在表头，如果不存在，可以在这里添加表头
            boolean hasHeader = false;
            if (!lines.isEmpty() && lines.get(0).toLowerCase().startsWith("header1,header2,header3")) {
                hasHeader = true;
            }

            // 对CSV行进行处理
            List<String> formattedLines = new ArrayList<>();
            if (hasHeader) {
                formattedLines.add(lines.get(0)); // 添加表头
            }
            for (int i = hasHeader ? 1 : 0; i < lines.size(); i++) {
                String line = lines.get(i);

                // 在这里进行行的处理，例如分隔符的替换、字段的对齐等
                // 这里只是一个示例，可以根据实际需求进行定制

                formattedLines.add(line);
            }

            // 将格式化后的行重新写入CSV文件
            Files.write(Paths.get(csvFilePath), formattedLines, StandardOpenOption.TRUNCATE_EXISTING);

            System.out.println("CSV文件格式化成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
